import request from '../utils/Request.js';

/**
 * 企业管理API模块
 */
const enterpriseApi = {
  /**
   * 创建企业（包含账号）
   * @param {Object} params - 请求参数
   * @param {Object} params.enterpriseInfo - 企业信息对象
   * @returns {Promise} 返回创建结果
   */
  createEnterprise: (params) => {
    return request.post({
      url: '/account/createAccount',
      params: {
        type: 1, // 企业账号类型
        enterpriseInfo: params.enterpriseInfo,
      },
    });
  },

  /**
   * 加载所有企业列表
   * @param {Object} [params] - 查询参数
   * @param {number} [params.pageNo=1] - 页码
   * @param {number} [params.pageSize=10] - 每页大小
   * @param {string} [params.nameFuzzy] - 企业名称模糊查询
   * @param {number} [params.status] - 状态：0-创建未备案 1-已备案未审核 2-已退回 3-正常 4-倒闭
   * @param {number} [params.region] - 所属地区
   * @param {number} [params.nature] - 所属性质
   * @param {number} [params.industry] - 所属行业
   * @returns {Promise} 返回企业列表
   */
  loadAllEnterprise: (params = {}) => {
    // 设置默认参数
    const defaultParams = {
      pageNo: 1,
      pageSize: 10,
      ...params,
    };

    return request.get({
      url: '/account/loadAllEnterprise',
      params: defaultParams,
    });
  },

  /**
   * 根据企业ID获取企业信息
   * @param {string} enterpriseId - 企业ID
   * @returns {Promise} 返回企业信息
   */
  getEnterprise: (enterpriseId) => {
    return request.get({
      url: `/account/getEnterprise/${enterpriseId}`,
    });
  },

  /**
   * 更新企业信息
   * @param {string} enterpriseId - 企业ID
   * @param {Object} enterpriseInfo - 企业信息对象
   * @returns {Promise} 返回更新结果
   */
  updateEnterprise: (enterpriseId, enterpriseInfo) => {
    return request.put({
      url: `/account/updateEnterprise/${enterpriseId}`,
      params: enterpriseInfo, // Request.js中PUT方法会将params作为data发送
    });
  },

  /**
   * 删除企业
   * @param {string} enterpriseId - 企业ID
   * @returns {Promise} 返回删除结果
   */
  deleteEnterprise: (enterpriseId) => {
    return request.delete({
      url: `/account/deleteEnterprise/${enterpriseId}`,
    });
  },
};

export default enterpriseApi;

